A device driver is a body of software code that often enables one or more higher-level software applications to interact with a hardware device. Often, a device driver accepts generic commands from a higher-level application with which a user interacts, and translates the commands into lower-level commands that the printer device being driven is configured to process. By acting as a translator, the device driver can simplify the programming of higher-level applications, since those applications need not be programmed to issue commands in the lower-level languages that devices process. A device driver may also provide a standardized interface through which higher-level applications may invoke a device's functions.
A printer driver is a body of software code that enables higher-level applications to invoke the functions provided by a printer device. Typically, a printer driver provides functionality that may be broadly categorized as rendering, configuration and user experience functionality. Briefly, rendering functionality provided by a printer driver translates information that is generated when a print job is initiated to commands and data that comply with a page description language (PDL) that the printer device is configured to process. Configuration functionality enables a higher-level program to configure and view configuration aspects of a printer device, such as the paper sizes the printer device supports, whether color printing is supported, etc. User experience functionality manages the presentation of information by the printer device to a user during print operations, such as to let the user know that a print job has commenced or completed, that ink supplies are low, etc.